-- Info-Portion Switches --[[ Parses a condition list when info given to actor ex. ["info1"] = "%-info2 +info3%" When 'info1' is given to actor, 'info2' will be disabled and 'info3' will be given advanced example: ["info1"] = "{=some_xr_condition(value)} %+info2%" --]] local info_switches = { ["ui_pda"] = "%-ui_pda_hide%", ["ui_pda_hide"] = "%-ui_pda%", ["ui_car_body"] = "%-ui_car_body_hide%", ["ui_car_body_hide"] = "%-ui_car_body%", ["bar_arena_fight_1_done"] = "%-bar_arena_fight -bar_arena_fight_begin%", ["bar_arena_fight_2_done"] = "%-bar_arena_fight -bar_arena_fight_begin%", ["bar_arena_fight_3_done"] = "%-bar_arena_fight -bar_arena_fight_begin%", ["bar_arena_fight_4_done"] = "%-bar_arena_fight -bar_arena_fight_begin%", ["bar_arena_fight_5_done"] = "%-bar_arena_fight -bar_arena_fight_begin%", ["bar_arena_fight_6_done"] = "%-bar_arena_fight -bar_arena_fight_begin%", ["bar_arena_fight_7_done"] = "%-bar_arena_fight -bar_arena_fight_begin%", ["bar_arena_fight_8_done"] = "%-bar_arena_fight -bar_arena_fight_begin%", ["bar_arena_fight"] = "%-bar_arena_reset%", ["bar_arena_reset"] = "%-bar_arena_fight_1_reward -bar_arena_fight_2_reward -bar_arena_fight_3_reward -bar_arena_fight_4_reward -bar_arena_fight_5_reward -bar_arena_fight_6_reward -bar_arena_fight_7_reward -bar_arena_fight_8_reward%", ["bar_arena_start"] = "%-bar_old_arena_reset%", ["bar_old_arena_reset"] = "%-bar_arena_start -bar_arena_1000_r -bar_arena_2000_r -bar_arena_3000_r -bar_arena_5000_r -bar_arena_20_p -bar_arena_50_p -bar_arena_100_p -bar_arena_fight_10 -bar_arena_fight_20 -bar_arena_fight_30 -bar_arena_fight_40 -bar_arena_fight_50 -bar_arena_fight_60 -bar_arena_fight_70 -bar_arena_fight_80 -bar_arena_fight_90 -bar_arena_start_introduce -bar_arena_spawn_monstr -bar_arena_monstr_ready -bar_arena_monstr_dead -bar_arena_actor_victory -bar_arena_actor_lose -bar_arena_actor_afraid -bar_arena_actor_dead -bar_arena_pseudodog_choosen -bar_arena_snork_choosen -bar_arena_bloodsucker_choosen -bar_arena_burer_choosen -bar_arena_savage_choosen%" } local function proceed() if not (db.actor) then return end if not has_alife_info("warlab_password_info") then if has_alife_info("main_1_search_agr_ug_task_done") and has_alife_info("main_2_search_labx18_task_done") and has_alife_info("main_3_search_labx16_task_done") and has_alife_info("main_4_search_labx10_task_done") and has_alife_info("main_5_search_labx8_task_done") and has_alife_info("main_6_search_jup_ug_task_done") and has_alife_info("main_7_search_mon_con_task_done") and has_alife_info("pri_monolith_decoder_got") and has_alife_info("pri_documents_warlab_task") then db.actor:give_info_portion("warlab_password_info") task_manager.get_task_manager():give_task("sar_warlab") task_manager.get_task_manager():give_task("sar_monolith_destroy") end end end local function actor_on_info_callback(actor,info,obj) if (info_switches[info]) then xr_logic.pick_section_from_condlist(actor,actor,utils_data.parse_condlist(info_switches[info])) end if (info == "ui_pda") then pda.calculate_rankings() end proceed() end local function on_game_load() db.actor:give_info_portion("ui_pda_hide") -- because if you change level while PDA is open db.actor:disable_info_portion("tutorial_sleep") db.actor:disable_info_portion("actor_is_sleeping") db.actor:disable_info_portion("sleep_active") -- Retroactive fix for old saves with broken companions (REMOVE IN LATER PATCHES) db.actor:disable_info_portion("npcx_is_companion") db.actor:disable_info_portion("npcx_beh_wait") db.actor:disable_info_portion("npcx_beh_cannot_dismiss") db.actor:disable_info_portion("npcx_beh_patrol_mode") db.actor:disable_info_portion("npcx_beh_ignore_combat") db.actor:disable_info_portion("npcx_beh_ignore_actor_enemies") db.actor:disable_info_portion("npcx_beh_substate_stealth") db.actor:disable_info_portion("npcx_beh_distance_far") db.actor:disable_info_portion("npcx_beh_gather_items") db.actor:disable_info_portion("npcx_beh_loot_corpses") end function on_game_start() RegisterScriptCallback("actor_on_info_callback",actor_on_info_callback) RegisterScriptCallback("on_game_load",on_game_load) end